package com.ggggeeennn.exam.domain;

import com.ggggeeennn.common.annotation.Excel;
import com.ggggeeennn.common.core.domain.BaseEntity;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;

import java.util.List;

/**
 * 考试管理对象 exam_manage
 * 
 * @author ggggeeennn
 * @date 2025-06-30
 */
public class ExamManage extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 考试编号 */
    @Excel(name = "考试编号")
    private Long examCode;

    /** 考试名称 */
    @Excel(name = "考试名称")
    private String description;

    /** 专业 */
    private String major;

    /** 课程名称 */
    @Excel(name = "课程名称")
    private String source;

    /** 考试类型 */
    private String examType;

    /** 考生须知 */
    private String tips;

    /** 试卷编号 */
    private Long paperId;

    /** 试卷信息 */
    private List<Integer> paperDetail;

    /** 试卷题目ID数组 */
    private List<List<Integer>> paperProblemArray;

    /** 考试日期 */
    @Excel(name = "考试日期")
    private String examDate;

    /** 持续时长 */
    private Long totalTime;

    /** 总分 */
    private Long totalScore;

    /** 是否发布 */
    @Excel(name = "是否发布")
    private Long isPublic;

    public void setExamCode(Long examCode) 
    {
        this.examCode = examCode;
    }

    public Long getExamCode() 
    {
        return examCode;
    }

    public void setDescription(String description) 
    {
        this.description = description;
    }

    public String getDescription() 
    {
        return description;
    }

    public void setMajor(String major) 
    {
        this.major = major;
    }

    public String getMajor() 
    {
        return major;
    }

    public void setSource(String source) 
    {
        this.source = source;
    }

    public String getSource() 
    {
        return source;
    }

    public void setExamType(String examType)
    {
        this.examType = examType;
    }

    public String getExamType()
    {
        return examType;
    }

    public void setTips(String tips) 
    {
        this.tips = tips;
    }

    public String getTips() 
    {
        return tips;
    }

    public void setPaperId(Long paperId) 
    {
        this.paperId = paperId;
    }

    public Long getPaperId() 
    {
        return paperId;
    }

    public void setPaperDetail(List<Integer> paperDetail)
    {
        this.paperDetail = paperDetail;
    }

    public List<Integer> getPaperDetail()
    {
        return paperDetail;
    }

    public void setPaperProblemArray(List<List<Integer>> paperProblemArray)
    {
        this.paperProblemArray = paperProblemArray;
    }

    public List<List<Integer>> getPaperProblemArray()
    {
        return paperProblemArray;
    }

    public void setExamDate(String examDate) 
    {
        this.examDate = examDate;
    }

    public String getExamDate() 
    {
        return examDate;
    }

    public void setTotalTime(Long totalTime) 
    {
        this.totalTime = totalTime;
    }

    public Long getTotalTime() 
    {
        return totalTime;
    }

    public void setTotalScore(Long totalScore) 
    {
        this.totalScore = totalScore;
    }

    public Long getTotalScore() 
    {
        return totalScore;
    }

    public void setIsPublic(Long isPublic) 
    {
        this.isPublic = isPublic;
    }

    public Long getIsPublic() 
    {
        return isPublic;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("examCode", getExamCode())
            .append("description", getDescription())
            .append("major", getMajor())
            .append("source", getSource())
            .append("type", getExamType())
            .append("tips", getTips())
            .append("paperId", getPaperId())
            .append("paperDetail", getPaperDetail())
            .append("paperProblemArray", getPaperProblemArray())
            .append("examDate", getExamDate())
            .append("totalTime", getTotalTime())
            .append("totalScore", getTotalScore())
            .append("isPublic", getIsPublic())
            .toString();
    }


}
